Read last N lines of a fileΒΆ

Read last n lines of a file.
import sys
import os

def file_read_from_tail(fname, lines):

    bufsize = 8192
    fsize = os.stat(fname).st_size

    iter = 0
    with open(fname) as f:
        if bufsize > fsize:
            bufsize = fsize-1
            data = []
            while True:
                iter += 1
                f.seek(fsize - bufsize * iter)
                data.extend(f.readlines())
                if len(data) >= lines or f.tell() == 0:
                     print(''.join(data[-lines:]))
                     break

# test
file_read_from_tail('test.txt', 2)

Output:

Append this text.
Append this text.